package com.groupseven.backend.domain.Program;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;

/**
 * @Author 王志华
 */
public class ProgramApplication {

    @NotBlank(message = "项目名称不能为空！")
    @Length(min = 1, max = 20, message = "长度要在2到20之间")
    public String ProgramName; //项目名称
    public String Affiliation; //所属单位
    @NotBlank(message = "申报人不能为空！")
    @Length(min = 1, max = 20, message = "长度要在2到20之间")
    public String Declarer; //申报人
    public float ReportExpenses; //申报经费
    public Manager manager; //负责人

    public String managerName;
    public String managerEmail;
    public String managerPhone;
    public String managerNumber;
    public int managerUnit;

    public int Level;


    public List<TeamMember> TeamMembers; //项目组成员
    public String ProjectDescription; //项目简介
    public String Reason; //申请理由：（立项依据、自身及团队具备的知识、特长、前期准备等
    public String project_plan_and_schedule; //项目方案与进度安排
    public String project_features_and_innovation; //项目特色与创新
    public String ExpectedResult; //预期成果
    public String ProgramNumber; //项目编号
    public int ApprovalStatus; //审核状态(字典控制)1审核中2待审核3审核通过4审核不通过

    public Date StartTime;
    public Date EndTime;

    public String getManagerName() {
        return managerName;
    }

    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String getManagerEmail() {
        return managerEmail;
    }

    public void setManagerEmail(String managerEmail) {
        this.managerEmail = managerEmail;
    }

    public String getManagerPhone() {
        return managerPhone;
    }

    public void setManagerPhone(String managerPhone) {
        this.managerPhone = managerPhone;
    }

    public String getManagerNumber() {
        return managerNumber;
    }

    public void setManagerNumber(String managerNumber) {
        this.managerNumber = managerNumber;
    }

    public int getManagerUnit() {
        return managerUnit;
    }

    public void setManagerUnit(int managerUnit) {
        this.managerUnit = managerUnit;
    }

    public Date getStartTime() {
        return StartTime;
    }

    public void setStartTime(Date startTime) {
        StartTime = startTime;
    }

    public Date getEndTime() {
        return EndTime;
    }

    public void setEndTime(Date endTime) {
        EndTime = endTime;
    }


    public int getLevel() {
        return Level;
    }

    public void setLevel(int level) {
        Level = level;
    }


    public String getProgramNumber() {
        return ProgramNumber;
    }

    public void setProgramNumber(String programNumber) {
        ProgramNumber = programNumber;
    }

    public String getProgramName() {
        return ProgramName;
    }

    public void setProgramName(String programName) {
        ProgramName = programName;
    }

    public String getAffiliation() {
        return Affiliation;
    }

    public void setAffiliation(String affiliation) {
        Affiliation = affiliation;
    }

    public String getDeclarer() {
        return Declarer;
    }

    public void setDeclarer(String declarer) {
        Declarer = declarer;
    }

    public float getReportExpenses() {
        return ReportExpenses;
    }

    public void setReportExpenses(float reportExpenses) {
        ReportExpenses = reportExpenses;
    }

    public Manager getManager() {
        return manager;
    }

    public void setManager(Manager manager) {
        this.manager = manager;
    }

    public List<TeamMember> getTeamMembers() {
        return TeamMembers;
    }

    public void setTeamMembers(List<TeamMember> teamMembers) {
        TeamMembers = teamMembers;
    }

    public String getProjectDescription() {
        return ProjectDescription;
    }

    public void setProjectDescription(String projectDescription) {
        ProjectDescription = projectDescription;
    }

    public String getReason() {
        return Reason;
    }

    public void setReason(String reason) {
        Reason = reason;
    }

    public String getProject_plan_and_schedule() {
        return project_plan_and_schedule;
    }

    public void setProject_plan_and_schedule(String project_plan_and_schedule) {
        this.project_plan_and_schedule = project_plan_and_schedule;
    }

    public String getProject_features_and_innovation() {
        return project_features_and_innovation;
    }

    public void setProject_features_and_innovation(String project_features_and_innovation) {
        this.project_features_and_innovation = project_features_and_innovation;
    }

    public String getExpectedResult() {
        return ExpectedResult;
    }

    public void setExpectedResult(String expectedResult) {
        ExpectedResult = expectedResult;
    }



    public ProgramApplication() {
    }


    public int getApprovalStatus() {
        return ApprovalStatus;
    }

    public void setApprovalStatus(int approvalStatus) {
        ApprovalStatus = approvalStatus;
    }
}
